package br.com.werp.regras.contabilidade.visao.decorador;

import br.com.werp.regras.contabilidade.controle.ControleConta;
import br.com.werp.regras.contabilidade.controle.ControleLancamento;
import br.com.werp.regras.geral.util.Constantes;
import br.com.werp.regras.geral.util.FormatDate;
import br.com.werp.regras.geral.util.Html;
import br.com.werp.regras.geral.util.Util;
import br.com.werp.regras.geral.vos.contabilidade.ContaAnaliticaVO;
import br.com.werp.regras.geral.vos.contabilidade.LoteLancamentoVO;

import org.displaytag.decorator.TableDecorator;

import java.util.HashMap;
import java.util.Map;


/**
 * @author Carlos Eduardo
 * Criado em 01/02/2005
 */
public class LancamentoPesquisa extends TableDecorator {
    ControleConta controleConta = new ControleConta();

    public String getLote_id() {
        LoteLancamentoVO loteLancamentoVO = (LoteLancamentoVO) getCurrentRowObject();
        Map parametros = new HashMap();
        parametros.put("carregar_action", null);
        parametros.put("lote_id", new Integer(loteLancamentoVO.getLote_id()));

        return Html.href("../Lancamentos/LancamentoForm.do", parametros) +
        ControleLancamento.gerarCodigoLote(loteLancamentoVO.getLote_data(),
            loteLancamentoVO.getLote_serial()) + "</a>";
    }

    public String getLancamento_id() {
        LoteLancamentoVO loteLancamentoVO = (LoteLancamentoVO) getCurrentRowObject();
        Map parametros = new HashMap();
        parametros.put("carregar_action", null);
        parametros.put("lanc_id", new Integer(loteLancamentoVO.getLanc_id()));
        parametros.put("lote_plano_contas", new Integer(loteLancamentoVO.getLote_plano_contas()));
        parametros.put("lote_id", new Integer(loteLancamentoVO.getLote_id()));
        
        return Html.href("../Lancamentos/EditarLancamentoForm.do", parametros) +
        loteLancamentoVO.getLanc_id() + "</a>";
    }

    public String getSint_descricao() throws Exception {
        LoteLancamentoVO loteLancamentoVO = (LoteLancamentoVO) getCurrentRowObject();
        ContaAnaliticaVO contaAnaliticaVO = new ContaAnaliticaVO();
        contaAnaliticaVO.setAnlt_id(loteLancamentoVO.getLanc_analitica());

        contaAnaliticaVO = (ContaAnaliticaVO) Util.get0(controleConta.pesquisarContasAnaliticas(
                    contaAnaliticaVO));

        return contaAnaliticaVO.getSint_descricao();
    }

    public String getLote_data() {
        LoteLancamentoVO loteLancamentoVO = (LoteLancamentoVO) getCurrentRowObject();

        return FormatDate.format(loteLancamentoVO.getLote_data(),
            Constantes.DATA_FORMATO);
    }

    public String getLanc_valor() {
        LoteLancamentoVO loteLancamentoVO = (LoteLancamentoVO) getCurrentRowObject();

        return Util.formatNumberReal(loteLancamentoVO.getLanc_valor()) + " " +
        loteLancamentoVO.getLanc_deb_crd();
    }

    public String getLanc_historico() {
        LoteLancamentoVO loteLancamentoVO = (LoteLancamentoVO) getCurrentRowObject();

        return "<TEXTAREA NAME='text' class='baseField' readonly cols=\"40\" rows=\"2\"  > " +
        loteLancamentoVO.getLanc_historico() + "</TEXTAREA>";
    }
}
